package cn.gzjp.modules.it.entity;

import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import cn.gzjp.common.persistence.DataEntity;
import cn.gzjp.common.utils.excel.annotation.ExcelField;

/**
 * 车辆Entity
 * @author zengcp
 * @version 2018-01-26
 */
public class Car extends DataEntity<Car> {
	
	private static final long serialVersionUID = 1L;
	private String mobile;		// 手机号
	private Integer illegal;		// 违章次数
	private Integer money;		// 罚款金额
	private Integer fen;		// 扣分
	private Integer untreated;		// 未处理
	private Integer paid;		// 已缴纳合计
	private String jszImg1;		// 驾驶证正本
	private String jszImg2;		// 驾驶证副本
	private String engineNO;		// 发动机号
	private String carVIN;		// 车架号
	private String city;		// city
	private Date auditDate;		// 年审到期
	private String overdue;		// 是否逾期 0 否 1是
	private String remind;		// 年审提醒0否1 提醒
	private String bespeak;		// 年审预约0 否1 已预约
	private String agency;		// 年审代办
	
	private String cityCode;//城市代码
	private String province;//省份
	
	
	private String engineNeed;//是否需要发动机号0:不需要 1:需要
	private String engineNumber;//	需要几位发动机号0:全部 1-9 :需要发动机号后N位;
	private String classaNeed;  //是否需要车架号0,不需要 1,需要
	private String classaNumber;   //需要几位车架号0:全部 1-9: 需要车架号后N位
	
	
	
	public Car() {
		this.setMoney(0);;
		this.setFen(0);
		this.setIllegal(0);
		this.setUntreated(0);
		this.setPaid(0);
		this.setOverdue("0");
		this.setRemind("0");
		this.setBespeak("0");
		this.setAgency("0");
	}

	public Car(String id){
		super(id);
	}

	@Length(min=0, max=11, message="手机号长度必须介于 0 和 11 之间")
	@ExcelField(title="手机号", align=2, sort=1)
	public String getMobile() {
		return mobile;
	}

	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
	
	@ExcelField(title="违章次数", align=2, sort=2)
	public Integer getIllegal() {
		return illegal;
	}

	public void setIllegal(Integer illegal) {
		this.illegal = illegal;
	}
	
	@ExcelField(title="罚款金额", align=2, sort=3)
	public Integer getMoney() {
		return money;
	}

	public void setMoney(Integer money) {
		this.money = money;
	}
	
	@ExcelField(title="扣分", align=2, sort=4)
	public Integer getFen() {
		return fen;
	}

	public void setFen(Integer fen) {
		this.fen = fen;
	}
	
	@ExcelField(title="未处理", align=2, sort=5)
	public Integer getUntreated() {
		return untreated;
	}

	public void setUntreated(Integer untreated) {
		this.untreated = untreated;
	}
	
	@ExcelField(title="已缴纳合计", align=2, sort=6)
	public Integer getPaid() {
		return paid;
	}

	public void setPaid(Integer paid) {
		this.paid = paid;
	}
	
	@Length(min=0, max=256, message="驾驶证正本长度必须介于 0 和 256 之间")
	@ExcelField(title="驾驶证正本", align=2, sort=7)
	public String getJszImg1() {
		return jszImg1;
	}

	public void setJszImg1(String jszImg1) {
		this.jszImg1 = jszImg1;
	}
	
	@Length(min=0, max=256, message="驾驶证副本长度必须介于 0 和 256 之间")
	@ExcelField(title="驾驶证副本", align=2, sort=8)
	public String getJszImg2() {
		return jszImg2;
	}

	public void setJszImg2(String jszImg2) {
		this.jszImg2 = jszImg2;
	}
	
	@Length(min=0, max=32, message="发动机号长度必须介于 0 和 32 之间")
	@ExcelField(title="发动机号", align=2, sort=9)
	public String getEngineNO() {
		return engineNO;
	}

	public void setEngineNO(String engineNO) {
		this.engineNO = engineNO;
	}
	
	
	

	@Length(min=0, max=32, message="车架号长度必须介于 0 和 32 之间")
	@ExcelField(title="车架号", align=2, sort=10)
	public String getCarVIN() {
		return carVIN;
	}


	public void setCarVIN(String carVIN) {
		this.carVIN = carVIN;
	}

	@Length(min=0, max=32, message="city长度必须介于 0 和 32 之间")
	@ExcelField(title="city", align=2, sort=11)
	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="年审到期", align=2, sort=12)
	public Date getAuditDate() {
		return auditDate;
	}

	public void setAuditDate(Date auditDate) {
		this.auditDate = auditDate;
	}
	
	@Length(min=0, max=3, message="是否逾期 0 否 1是长度必须介于 0 和 3 之间")
	@ExcelField(title="是否逾期 0 否 1是", align=2, sort=13)
	public String getOverdue() {
		return overdue;
	}

	public void setOverdue(String overdue) {
		this.overdue = overdue;
	}
	
	@Length(min=0, max=3, message="年审提醒0否1 提醒长度必须介于 0 和 3 之间")
	@ExcelField(title="年审提醒0否1 提醒", align=2, sort=14)
	public String getRemind() {
		return remind;
	}

	public void setRemind(String remind) {
		this.remind = remind;
	}
	
	@Length(min=0, max=3, message="年审预约0 否1 已预约长度必须介于 0 和 3 之间")
	@ExcelField(title="年审预约0 否1 已预约", align=2, sort=15)
	public String getBespeak() {
		return bespeak;
	}

	public void setBespeak(String bespeak) {
		this.bespeak = bespeak;
	}
	
	@Length(min=0, max=3, message="年审代办长度必须介于 0 和 3 之间")
	@ExcelField(title="年审代办", align=2, sort=16)
	public String getAgency() {
		return agency;
	}

	public void setAgency(String agency) {
		this.agency = agency;
	}

	public String getCityCode() {
		return cityCode;
	}

	public void setCityCode(String cityCode) {
		this.cityCode = cityCode;
	}

	public String getProvince() {
		return province;
	}

	public void setProvince(String province) {
		this.province = province;
	}

	public String getEngineNeed() {
		return engineNeed;
	}

	public void setEngineNeed(String engineNeed) {
		this.engineNeed = engineNeed;
	}

	public String getEngineNumber() {
		return engineNumber;
	}

	public void setEngineNumber(String engineNumber) {
		this.engineNumber = engineNumber;
	}

	public String getClassaNeed() {
		return classaNeed;
	}

	public void setClassaNeed(String classaNeed) {
		this.classaNeed = classaNeed;
	}

	public String getClassaNumber() {
		return classaNumber;
	}

	public void setClassaNumber(String classaNumber) {
		this.classaNumber = classaNumber;
	}
	
}